#ifndef __IROLE_H_283938__
#define __IROLE_H_283938__

class CMagicEx;
class IRole
{
public:
	IRole(unsigned int idRole){}
	virtual ~IRole(){}
	virtual void Init() = 0;
	virtual int GetMana(void) { return 0;}
	virtual int GetPosX(void) {return 0; }
	virtual int GetPosY(void) {return 0; }
	virtual int GetLife(void) { return 0; }
	virtual unsigned int GetID(void) = 0;
	virtual bool MoveTo(unsigned int unDestX, unsigned int unDestY) = 0;
	virtual void BeDamage(int nAmount) = 0;
	virtual bool IsAlive() = 0;

	virtual void Broadcast(const char* pszMsg) = 0;

	virtual void OnTimer() = 0;
	virtual void MagicAttack(unsigned short usMagicType, unsigned int idTarget) = 0;
	virtual CMagicEx* GetMagicExPtr() = 0;
};

#endif //__IROLE_H_283938__